/**
 * Fonction de validation du formulaire de livre d'or
 * 
 * @returns true / false si la validation est ok
 */
function validateLivreOr() {
	var idNomLivreOr = $.trim($("#nomLivreOr").val());
	if (idNomLivreOr == null || idNomLivreOr == "") {
		$("#msgError").val("Merci de renseigner vos nom et prénom afin de valider votre message");
		$("#msgError").focus();
		return true;
	}
	
	var idMessageOr = $.trim($("#messageOr").val());
	if (idMessageOr == null || idMessageOr == "") {
		$("#msgError").val("Merci de renseigner votre message afin de valider votre message");
		$("#msgError").focus();
		return true;
	}
	
	if(confirm("Etes vous sûr de vouloir soumettre votre message ?")) {
		$("#msgEnvoye").val("1");
		$("#msgEnvoye").focus();
		return true;
	} else {
		// countLeft('messageOr', 'compteur', 500);
		$.trim('#' + idField).substring(0, max).trim(this);
		$('#' + idCount).text(max - $('#' + idField).val().length);
		return false;
	}
}

var point = new google.maps.LatLng(48.925249,2.27466);
var mapOptions = {
  center: point,
  zoom: 13,
  mapTypeId: google.maps.MapTypeId.ROADMAP
};
//google.maps.MapTypeId = HYBRID ; ROADMAP ; SATELLITE ; TERRAIN

var map = null;
var idToLoadMapIn = null;
var geocoder = null;
var gmarkers = [];

/**
 * Charge une carte google Maps dans l'élément HTML d'identifiant donné en
 * paramètre
 * 
 * @param idToLoadIn
 *            identifiant de l'objet HTML où sera chargée la carte Google Maps
 */
function initialize(idToLoadIn) {
	idToLoadMapIn = '#' + idToLoadIn;
	geocoder = new google.maps.Geocoder();
	map = new google.maps.Map($(idToLoadMapIn)[0], mapOptions);

	// Récupérer le nombre d'adresses à afficher
	var nbAdresses = $("#nbAdresses").val();
	for (var i=1; i<=nbAdresses; i++) {
		// Afficher l'adresse dans la carte
		showAddress("adresse-ceremonie-" + i, true);
	}
}

/**
 * Affiche sur la carte Google Maps l'adresse contenue dans l'élément HTML d'identifiant elementId
 * @param elementId
 * @param toCentralize
 */
function showAddress(elementId, toCentralize) {
	var address = $('#'+elementId).val();
	geocoder.geocode({ 
		'address': address
		}, 
		function(results, status) {
	    if (status == google.maps.GeocoderStatus.OK) {
	    	if (toCentralize) {
	    		map.setCenter(results[0].geometry.location);
	    	}
	    	var marker = new google.maps.Marker({
	    		position: results[0].geometry.location,
	    		map: map,
		        title:address
	    	});
	    	
	    	// Ajout du marker dans le tableau des markers
	    	gmarkers.push(marker);
	    } else {
	    	alert("L'adresse \"" + address + "\" n'a pu être trouvée pour la raison suivante : " + status);
	    }
	});
}

/**
 * Affiche le marker de l'adresse numéro i dans la carte google
 * @param i
 */
function showMarker(i) {
    google.maps.event.trigger(gmarkers[i], 'click');
    map.setCenter(gmarkers[i].position);
}
